<!DOCTYPE html><html lang="en" data-theme="dark"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Yang's Harbor</title><meta name="keywords" content="技术,笔记,见解,生活"><meta name="author" content="✨YangSier✨,hobart.yang@qq.com"><meta name="copyright" content="✨YangSier✨"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#0d0d0d"><meta http-equiv="Cache-Control" content="no-transform"><meta http-equiv="Cache-Control" content="no-siteapp"><meta name="description" content="Space of Tech, Love and Thought">
<meta property="og:type" content="website">
<meta property="og:title" content="Yang&#39;s Harbor">
<meta property="og:url" content="https://discover304.top/page/8/index.html">
<meta property="og:site_name" content="Yang&#39;s Harbor">
<meta property="og:description" content="Space of Tech, Love and Thought">
<meta property="og:locale" content="en_US">
<meta property="og:image" content="https://discover304.top/img/head.jpg">
<meta property="article:author" content="✨YangSier✨">
<meta property="article:tag" content="技术">
<meta property="article:tag" content="笔记">
<meta property="article:tag" content="见解">
<meta property="article:tag" content="生活">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://discover304.top/img/head.jpg"><link rel="shortcut icon" href="/img/favicon.png"><link rel="canonical" href="https://discover304.top/page/8/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//hm.baidu.com"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="preconnect" href="//zz.bdstatic.com"/><meta name="google-site-verification" content="ilqpfk3vkgzDNNikz_V37-DOvRyi5wv4Hoi_eyBqvTg"/><meta name="msvalidate.01" content="49D9A50CCF9744E17274791468EDB517"/><meta name="baidu-site-verification" content="code-V24KosyVh1"/><meta name="360-site-verification" content="bd8859c3d74dfa3e8aeee9db30c94bd2"/><meta name="yandex-verification" content="f28ec9bbd50c56f5"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.css" media="print" onload="this.media='all'"><script>var _hmt = _hmt || [];
(function() {
  var hm = document.createElement("script");
  hm.src = "https://hm.baidu.com/hm.js?8030f6052f2fed6a4704d96619f090d6";
  var s = document.getElementsByTagName("script")[0]; 
  s.parentNode.insertBefore(hm, s);
})();
</script><link rel="stylesheet" href="/css/font.css" media="print" onload="this.media='all'"><script>var GLOBAL_CONFIG = { 
  root: '/',
  algolia: undefined,
  localSearch: {"path":"search.xml","languages":{"hits_empty":"We didn't find any results for the search: ${query}"}},
  translate: {"defaultEncoding":2,"translateDelay":0,"msgToTraditionalChinese":"繁","msgToSimplifiedChinese":"簡"},
  noticeOutdate: {"limitDay":365,"position":"top","messagePrev":"It has been","messageNext":"days since the last update, the content of the article may be outdated."},
  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true},
  copy: {
    success: 'Copy successfully',
    error: 'Copy error',
    noSupport: 'The browser does not support'
  },
  relativeDate: {
    homepage: false,
    post: false
  },
  runtime: 'days',
  date_suffix: {
    just: 'Just',
    min: 'minutes ago',
    hour: 'hours ago',
    day: 'days ago',
    month: 'months ago'
  },
  copyright: {"limitCount":200,"languages":{"author":"Author: ✨YangSier✨","link":"Link: ","source":"Source: Yang's Harbor","info":"Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source."}},
  lightbox: 'fancybox',
  Snackbar: {"chs_to_cht":"Traditional Chinese Activated Manually","cht_to_chs":"Simplified Chinese Activated Manually","day_to_night":"Dark Mode Activated Manually","night_to_day":"Light Mode Activated Manually","bgLight":"#ffc910","bgDark":"#02c3f6","position":"bottom-left"},
  source: {
    jQuery: 'https://cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js',
    justifiedGallery: {
      js: 'https://cdn.jsdelivr.net/npm/justifiedGallery/dist/js/jquery.justifiedGallery.min.js',
      css: 'https://cdn.jsdelivr.net/npm/justifiedGallery/dist/css/justifiedGallery.min.css'
    },
    fancybox: {
      js: 'https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.js',
      css: 'https://cdn.jsdelivr.net/npm/@fancyapps/fancybox@latest/dist/jquery.fancybox.min.css'
    }
  },
  isPhotoFigcaption: true,
  islazyload: true,
  isanchor: true
};

var saveToLocal = {
  set: function setWithExpiry(key, value, ttl) {
    const now = new Date()
    const expiryDay = ttl * 86400000
    const item = {
      value: value,
      expiry: now.getTime() + expiryDay,
    }
    localStorage.setItem(key, JSON.stringify(item))
  },

  get: function getWithExpiry(key) {
    const itemStr = localStorage.getItem(key)

    if (!itemStr) {
      return undefined
    }
    const item = JSON.parse(itemStr)
    const now = new Date()

    if (now.getTime() > item.expiry) {
      localStorage.removeItem(key)
      return undefined
    }
    return item.value
  }
}

// https://stackoverflow.com/questions/16839698/jquery-getscript-alternative-in-native-javascript
const getScript = url => new Promise((resolve, reject) => {
  const script = document.createElement('script')
  script.src = url
  script.async = true
  script.onerror = reject
  script.onload = script.onreadystatechange = function() {
    const loadState = this.readyState
    if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
    script.onload = script.onreadystatechange = null
    resolve()
  }
  document.head.appendChild(script)
})</script><script id="config_change">var GLOBAL_CONFIG_SITE = { 
  isPost: false,
  isHome: true,
  isHighlightShrink: false,
  isToc: false,
  postUpdate: '2023-04-25 19:02:57'
}</script><noscript><style type="text/css">
  #nav {
    opacity: 1
  }
  .justified-gallery img {
    opacity: 1
  }

  #recent-posts time,
  #post-meta time {
    display: inline !important
  }
</style></noscript><script>(function () {  window.activateDarkMode = function () {
    document.documentElement.setAttribute('data-theme', 'dark')
    if (document.querySelector('meta[name="theme-color"]') !== null) {
      document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
    }
  }
  window.activateLightMode = function () {
    document.documentElement.setAttribute('data-theme', 'light')
   if (document.querySelector('meta[name="theme-color"]') !== null) {
      document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
    }
  }
  const autoChangeMode = 'false'
  const t = saveToLocal.get('theme')
  if (autoChangeMode === '1') {
    const isDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches
    const isLightMode = window.matchMedia('(prefers-color-scheme: light)').matches
    const isNotSpecified = window.matchMedia('(prefers-color-scheme: no-preference)').matches
    const hasNoSupport = !isDarkMode && !isLightMode && !isNotSpecified
    if (t === undefined) {
      if (isLightMode) activateLightMode()
      else if (isDarkMode) activateDarkMode()
      else if (isNotSpecified || hasNoSupport) {
        const now = new Date()
        const hour = now.getHours()
        const isNight = hour <= 6 || hour >= 18
        isNight ? activateDarkMode() : activateLightMode()
      }
      window.matchMedia('(prefers-color-scheme: dark)').addListener(function (e) {
        if (saveToLocal.get('theme') === undefined) {
          e.matches ? activateDarkMode() : activateLightMode()
        }
      })
    } else if (t === 'light') activateLightMode()
    else activateDarkMode()
  } else if (autoChangeMode === '2') {
    const now = new Date()
    const hour = now.getHours()
    const isNight = hour <= 6 || hour >= 18
    if (t === undefined) isNight ? activateDarkMode() : activateLightMode()
    else if (t === 'light') activateLightMode()
    else activateDarkMode()
  } else {
    if (t === 'dark') activateDarkMode()
    else if (t === 'light') activateLightMode()
  }const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
   if (asideStatus === 'hide') {
     document.documentElement.classList.add('hide-aside')
   } else {
     document.documentElement.classList.remove('hide-aside')
   }
}})()</script><meta name="generator" content="Hexo 6.3.0"><link rel="alternate" href="/atom.xml" title="Yang's Harbor" type="application/atom+xml">
</head><body><div id="loading-box"><div class="loading-left-bg"></div><div class="loading-right-bg"></div><div class="spinner-box"><div class="configure-border-1"><div class="configure-core"></div></div><div class="configure-border-2"><div class="configure-core"></div></div><div class="loading-word">Loading...</div></div></div><div id="web_bg"></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="author-avatar"><img class="avatar-img" data-lazy-src="/img/head.jpg" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="site-data"><div class="data-item is-center"><div class="data-item-link"><a href="/archives/"><div class="headline">Articles</div><div class="length-num">243</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/tags/"><div class="headline">Tags</div><div class="length-num">88</div></a></div></div><div class="data-item is-center"><div class="data-item-link"><a href="/categories/"><div class="headline">Categories</div><div class="length-num">23</div></a></div></div></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> Links</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> About</span></a></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> Articles</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archive</span></a></li><li><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Category</span></a></li><li><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></li></ul></div></div></div></div><div id="body-wrap"><header class="full_page" id="page-header" style="background-image: url(https://image.discover304.top/wallpaper/anime-anime-girls-original-characters-short-hair-wallpaper-preview.jpg?imageView2/2/h/600)"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">Yang's Harbor</a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> Search</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fas fa-link"></i><span> Links</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fas fa-heart"></i><span> About</span></a></div><div class="menus_item"><a class="site-page" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> Articles</span><i class="fas fa-chevron-down expand"></i></a><ul class="menus_item_child"><li><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archive</span></a></li><li><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Category</span></a></li><li><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></li></ul></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">Yang's Harbor</h1><div id="site-subtitle"><span id="subtitle"></span></div><div id="site_social_icons"><a class="social-icon" href="https://github.com/Discover304" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="https://blog.csdn.net/Discover304" target="_blank" title="CSDN"><i class="fa-solid fa-c"></i></a><a class="social-icon" href="https://www.zhihu.com/people/discover-56-86-75" target="_blank" title="知乎"><i class="fa-brands fa-zhihu"></i></a><a class="social-icon" href="mailto:hobart.yang@qq.com" target="_blank" title="Email"><i class="fas fa-envelope"></i></a><a class="social-icon" href="https://jq.qq.com/?_wv=1027&amp;k=EaGddTQg" target="_blank" title="QQ"><i class="fa-brands fa-qq"></i></a></div></div><div id="waves"><svg class="waves" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" viewBox="0 24 150 28" preserveAspectRatio="none" shape-rendering="auto"><defs><path id="gentle-wave" d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"></path></defs><g class="parallax"><use href="#gentle-wave" x="48" y="0"></use><use href="#gentle-wave" x="48" y="0"></use><use href="#gentle-wave" x="48" y="0"></use><use href="#gentle-wave" x="48" y="0"></use></g></svg></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item" style="width:100%;height:auto;float:left;padding:5px;flex-wrap:wrap;justify-content : center;flex-direction: row; "><figure class="gallery-group" id="color-card"><img class="gallery-group-img loaded" src="https://image.discover304.top/ai/dl/space_work.jpg?imageView2/2/h/300" data-ll-status="loaded"><figcaption style="background-image: linear-gradient(to bottom,rgba(0, 0, 0, 0.618) 25%,rgba(16,16,16,0) 100%"><div class="gallery-group-name" style="font-size: 1rem;">🔥人工智能</div><p>笔记和资料，涉及到深度学习、自动驾驶等领域。</p><a href="/tags/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"></a></figcaption></figure><figure class="gallery-group" id="color-card"><img class="gallery-group-img loaded" src="https://image.discover304.top/NEKOYA_S.S.S. Doll [Pallas].jfif?imageView2/2/h/300" data-ll-status="loaded"><figcaption style="background-image: linear-gradient(to bottom,rgba(0, 0, 0, 0.618) 25%,rgba(16,16,16,0) 100%"><div class="gallery-group-name" style="font-size: 1rem;">🔥ROS笔记</div><p>ROS机器人框架笔记。Beginer Friendly</p><a href="/tags/ROS/"></a></figcaption></figure><figure class="gallery-group" id="color-card"><img class="gallery-group-img loaded" src="https://image.discover304.top/python_future.jpg?imageView2/2/h/300" data-ll-status="loaded"><figcaption style="background-image: linear-gradient(to bottom,rgba(0, 0, 0, 0.618) 25%,rgba(16,16,16,0) 100%"><div class="gallery-group-name" style="font-size: 1rem;">✅Python教程</div><p>从0到1，在深入人工智能的全套Python笔记。</p><a href="/tags/Python/"></a></figcaption></figure><figure class="gallery-group" id="color-card"><img class="gallery-group-img loaded" src="https://image.discover304.top/miku-king-white-theme.jpg?imageView2/2/h/300" data-ll-status="loaded"><figcaption style="background-image: linear-gradient(to bottom,rgba(0, 0, 0, 0.618) 25%,rgba(16,16,16,0) 100%"><div class="gallery-group-name" style="font-size: 1rem;">❤️经验经历</div><p>过往的感悟和思考。</p><a href="/tags/%E7%BB%8F%E9%AA%8C/"></a></figcaption></figure><figure class="gallery-group" id="color-card"><img class="gallery-group-img loaded" src="https://image.discover304.top/factory.jpg?imageView2/2/h/300" data-ll-status="loaded"><figcaption style="background-image: linear-gradient(to bottom,rgba(0, 0, 0, 0.618) 25%,rgba(16,16,16,0) 100%"><div class="gallery-group-name" style="font-size: 1rem;">✨碎片技术</div><p>学习工作中遇到的很赞的技术碎片，整理好了。</p><a href="/tags/%E6%8A%80%E6%9C%AF/"></a></figcaption></figure><figure class="gallery-group" id="color-card"><img class="gallery-group-img loaded" src="https://image.discover304.top/gaoda.jpg?imageView2/2/h/300" data-ll-status="loaded"><figcaption style="background-image: linear-gradient(to bottom,rgba(0, 0, 0, 0.618) 25%,rgba(16,16,16,0) 100%"><div class="gallery-group-name" style="font-size: 1rem;">✨学习积累</div><p>相对于碎片技术的，已经沉淀为自己的资本的内容。</p><a href="/tags/学习/"></a></figcaption></figure></div><div class="recent-post-item" style="height:0px;clear:both;margin-top: 0px;"></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/11/25/2021q4/103-1-ml-lr/" title="【机器学习】第二部分上：线性回归">     <img class="post_bg" data-lazy-src="https://image.discover304.top/ai/AI-cover-black-white.webp" onerror="this.onerror=null;this.src='/img/404.png'" alt="【机器学习】第二部分上：线性回归"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/25/2021q4/103-1-ml-lr/" title="【机器学习】第二部分上：线性回归">【机器学习】第二部分上：线性回归</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-25T06:27:22.000Z" title="Created 2021-11-25 14:27:22">2021-11-25</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/">机器学习</a></span></div><div class="content">线性模型线性模型是自然界最简单的模型之一，它描述了一个（或多个）自变量对另一个因变量的影响是呈简单的比例、线性关系.例如：

住房每平米单价为1万元，100平米住房价格为100万元，120平米住房为120万元；
一台挖掘机每小时挖$100m^3$沙土，工作4小时可以挖掘$400m^3$沙土.

线性模型在二维空间内表现为一条直线，在三维空间内表现为一个平面，更高维度下的线性模型很难用几何图形来表示（称为超平面）.如下图所示：

二维空间下线性模型表现为一条直线


三维空间下线性模型表现为一个平面
线性回归是要根据一组输入值和输出值（称为样本），寻找一个线性模型，能最佳程度上拟合于给定的数值分布，从而再给定新的输入时预测输出.样本如下表所示：




输入(x)
输出(y)



0.5
5.0


0.6
5.5


0.8
6.0


1.1
6.8


1.4
6.8


根据样本拟合的线性模型如下图所示：

线性模型定义设给定一组属性$x, x&#x3D;(x_1;x_2;…;x_n)$，线性方程的一般表达形式为：$$y &#x3D; w_1x_1 + w_2x_2 + w_3 ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/11/25/2021q4/103-0-ml/" title="【机器学习】第一部分：概述">     <img class="post_bg" data-lazy-src="https://image.discover304.top/ai/AI-cover-black-white.webp" onerror="this.onerror=null;this.src='/img/404.png'" alt="【机器学习】第一部分：概述"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/25/2021q4/103-0-ml/" title="【机器学习】第一部分：概述">【机器学习】第一部分：概述</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-25T06:26:23.000Z" title="Created 2021-11-25 14:26:23">2021-11-25</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/">机器学习</a></span></div><div class="content">人工智能课程概述什么是人工智能人工智能（Artificial Intelligence）是计算机科学的一个分支学科，主要研究用计算机模拟人的思考方式和行为方式，从而在某些领域代替人进行工作.
人工智能的学科体系以下是人工智能学科体系图：


机器学习（Machine Learning）：人工智能的一个子学科，研究人工智能领域的基本算法、原理、思想方法，机器学习研究的内容在其它子学科都会用到
计算机视觉（Computer Vision）：研究计算机处理、识别、理解图像、视频的相关技术
自然语言处理（Natural Language Processing）：研究计算机理解人类自然语言的相关技术
语言处理：研究计算机理解识别、理解、合成语音的相关技术

人工智能与传统软件的区别
传统软件：执行人的指令和想法，在执行之前人已经有了解决方案，无法超越人的思想和认识范围
人工智能：尝试突破人的思想和认识范围，让计算机学习到新的能力，尝试解决传统软件的难题

课程介绍课程内容课程内容主要包括：

课程特点
内容多：包括机器学习、深度学习、计算机视觉、NLP、常用框架
难度大：学习难度较大，入门难、提 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/11/22/2021q4/106-python-statistics-basic/" title="Pandas 和 Numpy  中的统计">     <img class="post_bg" data-lazy-src="https://image.discover304.top/ai/chart_ills.webp" onerror="this.onerror=null;this.src='/img/404.png'" alt="Pandas 和 Numpy  中的统计"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/22/2021q4/106-python-statistics-basic/" title="Pandas 和 Numpy  中的统计">Pandas 和 Numpy  中的统计</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-22T09:51:03.000Z" title="Created 2021-11-22 17:51:03">2021-11-22</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a></span></div><div class="content">数值型描述统计算数平均值$S &#x3D; [s_1, s_2, …, s_n]$
样本中的每个值都是真值与误差的和。
$mean &#x3D; \frac{(s_1 + s_2 + … + s_n) }{n}$
算数平均值表示对真值的无偏估计。
123m = np.mean(array)m = array.mean()m = df.mean(axis=0)

案例：针对电影评分数据做均值分析：
123mean = ratings[&#x27;John Carson&#x27;].mean()mean = np.mean(ratings[&#x27;John Carson&#x27;])means = ratings.mean(axis=1)

加权平均值求平均值时，考虑不同样本的重要性，可以为不同的样本赋予不同的权重。
样本：$S &#x3D; [s_1, s_2, s_3 … s_n]$
权重：$W &#x3D;[w_1, w_2, w_3 … w_n]$
加权平均值：$$a &#x3D; \frac{s_1w_1 + s_2w_2 + … + s_nw_n}{w_1+w_2+…+ ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/11/20/2021q4/102-Matplotlib-basic/" title="Matplotlib 笔记">     <img class="post_bg" data-lazy-src="https://image.discover304.top/ai/chart_ills.webp" onerror="this.onerror=null;this.src='/img/404.png'" alt="Matplotlib 笔记"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/20/2021q4/102-Matplotlib-basic/" title="Matplotlib 笔记">Matplotlib 笔记</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-20T08:26:30.000Z" title="Created 2021-11-20 16:26:30">2021-11-20</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a></span></div><div class="content">
:star2:基本绘图
:star:绘图核心API案例： 绘制简单直线

123456789101112131415161718192021import numpy as npimport matplotlib.pyplot as plt# 绘制简单直线x = np.array([1, 2, 3, 4, 5])y = np.array([3, 6, 9, 12, 15])# 绘制水平线、垂线plt.axhline(y=6, ls=&quot;:&quot;, c=&quot;blue&quot;)  # 添加水平直线plt.axvline(x=4, ls=&quot;-&quot;, c=&quot;red&quot;)  # 添加垂直直线# 绘制多段垂线plt.vlines([2, 3, 3.5],  # 垂线的x坐标值           [10, 20, 30],  # 每条垂线起始y坐标           [25, 35, 45])  # 每条垂线结束y坐标			[],[],[]     位置，开始位置，结束位置  plt.plot(x, y)   ************ ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/11/20/2021q4/101-Pandas-basic/" title="Pandas笔记">     <img class="post_bg" data-lazy-src="https://image.discover304.top/ai/chart_ills.webp" onerror="this.onerror=null;this.src='/img/404.png'" alt="Pandas笔记"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/20/2021q4/101-Pandas-basic/" title="Pandas笔记">Pandas笔记</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-20T08:26:11.000Z" title="Created 2021-11-20 16:26:11">2021-11-20</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a></span></div><div class="content">
:star2:pandas介绍Python Data Analysis Library
pandas是基于NumPy 的一种工具，该工具是为了解决数据分析任务而创建的。Pandas 纳入 了大量库和一些标准的数据模型，提供了高效地操作大型结构化数据集所需的工具。

:star2:pandas核心数据结构数据结构是计算机存储、组织数据的方式。 通常情况下，精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有关。

:star:SeriesSeries可以理解为一个一维的数组，只是index名称可以自己改动。类似于定长的有序字典，有Index和 value。
1234567891011121314import pandas as pdimport numpy as np# 创建一个空的系列s = pd.Series()# 从ndarray创建一个Seriesdata = np.array([&#x27;张三&#x27;,&#x27;李四&#x27;,&#x27;王五&#x27;,&#x27;赵柳&#x27;])s = pd.Series(data)s ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/11/20/2021q4/100-Numpy-basic/" title="Numpy 中的 Ndarray">     <img class="post_bg" data-lazy-src="https://image.discover304.top/ai/chart_ills.webp" onerror="this.onerror=null;this.src='/img/404.png'" alt="Numpy 中的 Ndarray"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/20/2021q4/100-Numpy-basic/" title="Numpy 中的 Ndarray">Numpy 中的 Ndarray</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-20T08:25:49.000Z" title="Created 2021-11-20 16:25:49">2021-11-20</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a></span></div><div class="content">numpy概述
Numerical Python，数值的Python，补充了Python语言所欠缺的数值计算能力。
Numpy是其它数据分析及机器学习库的底层库。
Numpy完全标准C语言实现，运行效率充分优化。
Numpy开源免费。

numpy历史
1995年，Numeric，Python语言数值计算扩充。
2001年，Scipy-&gt;Numarray，多维数组运算。
2005年，Numeric+Numarray-&gt;Numpy。
2006年，Numpy脱离Scipy成为独立的项目。

numpy的核心：多维数组
代码简洁：减少Python代码中的循环。
底层实现：厚内核(C)+薄接口(Python)，保证性能。

ndarray 数组用np.ndarray类的对象表示n维数组
123import numpy as npary = np.array([1, 2, 3, 4, 5, 6])print(type(ary)) # &lt;class &#x27;numpy.ndarray&#x27;&gt;

内存中的ndarray对象元数据（metadata）
存储对目标数组的 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/11/20/2021q4/099-Django-dev-06/" title="【Django】 开发：补充知识">     <img class="post_bg" data-lazy-src="https://image.discover304.top/djangotext.jpeg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Django】 开发：补充知识"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/20/2021q4/099-Django-dev-06/" title="【Django】 开发：补充知识">【Django】 开发：补充知识</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-20T08:18:13.000Z" title="Created 2021-11-20 16:18:13">2021-11-20</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Web/">Web</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Django/">Django</a></span></div><div class="content">有需要上网现查现学的东西。
分页
分页是指在web页面有大量数据需要显示，为了阅读方便在每个页页中只显示部分数据。
好处:
方便阅读
减少数据提取量，减轻服务器压力。


Django提供了Paginator类可以方便的实现分页功能 
Paginator类位于django.core.paginator 模块中。

Paginator对象
负责分页数据整体的管理

对象的构造方法

paginator &#x3D; Paginator(object_list, per_page)
参数
object_list 需要分类数据的对象列表
per_page 每页数据个数


返回值:
Paginator的对象




Paginator属性

count：需要分类数据的对象总数
num_pages：分页后的页面总数
page_range：从1开始的range对象, 用于记录当前面码数
per_page 每页数据的个数


Paginator方法

page(number)
参数 number为页码信息(从1开始)
返回当前number页对应的页信息
如果提供的页码不存在，抛出InvalidPa ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/11/20/2021q4/098-Django-dev-05/" title="【Django】 开发：中间件和SDRF扩展知识">     <img class="post_bg" data-lazy-src="https://image.discover304.top/djangotext.jpeg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Django】 开发：中间件和SDRF扩展知识"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/20/2021q4/098-Django-dev-05/" title="【Django】 开发：中间件和SDRF扩展知识">【Django】 开发：中间件和SDRF扩展知识</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-20T08:18:05.000Z" title="Created 2021-11-20 16:18:05">2021-11-20</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Web/">Web</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Django/">Django</a></span></div><div class="content">中间件 Middleware
中间件是 Django 请求&#x2F;响应处理的钩子框架。它是一个轻量级的、低级的“插件”系统，用于全局改变 Django 的输入或输出。

每个中间件组件负责做一些特定的功能。例如，Django 包含一个中间件组件 AuthenticationMiddleware，它使用会话将用户与请求关联起来。

中间件类:

中间件类须继承自 django.utils.deprecation.MiddlewareMixin类
中间件类须实现下列五个方法中的一个或多个:
def process_request(self, request): 执行路由之前被调用，在每个请求上调用，返回None或HttpResponse对象 
def process_view(self, request, callback, callback_args, callback_kwargs): 调用视图之前被调用，在每个请求上调用，返回None或HttpResponse对象
def process_response(self, request, response): 所有响应返回浏览器   ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/11/20/2021q4/097-Django-dev-04/" title="【Django】 开发：Cookie、Session和缓存">     <img class="post_bg" data-lazy-src="https://image.discover304.top/djangotext.jpeg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Django】 开发：Cookie、Session和缓存"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/20/2021q4/097-Django-dev-04/" title="【Django】 开发：Cookie、Session和缓存">【Django】 开发：Cookie、Session和缓存</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-20T08:17:58.000Z" title="Created 2021-11-20 16:17:58">2021-11-20</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Web/">Web</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Django/">Django</a></span></div><div class="content">cookies 和 session
会话 - 从打开浏览器访问一个网站，到关闭浏览器结束此次访问，称之为一次会话
HTTP协议是无状态的，导致会话状态难以保持
试想一下，如果不保持会话状态，在电商网站购物的场景体验？

Cookies和Session就是为了保持会话状态而诞生的两个存储技术
cookies
cookies是保存在客户端浏览器上的存储空间

Chrome 浏览器 可能通过开发者工具的 Application &gt;&gt; Storage &gt;&gt; Cookies 查看和操作浏览器端所有的 Cookies 值

火狐浏览器 可能通过开发者工具的 存储 -&gt; Cookie

cookies 在浏览器上是以键-值对的形式进行存储的，键和值都是以ASCII字符串的形存储(不能是中文字符串)

cookies中的数据是按域存储隔离的，不同的域之间无法访问

cookies 的内部的数据会在每次访问此网址时都会携带到服务器端，如果cookies过大会降低响应速度



在Django 设置浏览器的COOKIE 必须通过 HttpResponse 对象来完成

添加、 ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/11/20/2021q4/096-Django-dev-03/" title="【Django】 开发：数据库操作和后台管理">     <img class="post_bg" data-lazy-src="https://image.discover304.top/djangotext.jpeg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Django】 开发：数据库操作和后台管理"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/20/2021q4/096-Django-dev-03/" title="【Django】 开发：数据库操作和后台管理">【Django】 开发：数据库操作和后台管理</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-20T08:17:50.000Z" title="Created 2021-11-20 16:17:50">2021-11-20</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Web/">Web</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Django/">Django</a></span></div><div class="content">查询数据
数据库的查询需要使用管理器对象进行 
通过 MyModel.objects 管理器方法调用查询接口


方法
说明



all()
查询全部记录,返回QuerySet查询对象


get()
查询符合条件的单一记录


filter()
查询符合条件的多条记录


exclude()
查询符合条件之外的全部记录


…






all()方法

方法: all()
用法: MyModel.objects.all()
作用: 查询MyModel实体中所有的数据
等同于
select * from tabel




返回值: QuerySet容器对象,内部存放 MyModel 实例
示例:  1234from bookstore.models import Bookbooks = Book.objects.all()for book in books:    print(&quot;书名&quot;, book.title, &#x27;出版社:&#x27;, book.pub)


在模型类中定义 def __str__(self):  方法可以自定义默认的字符串
 1 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/11/16/2021q4/095-Django-dev-02/" title="【Django】 开发：静态文件，应用和模型层">     <img class="post_bg" data-lazy-src="https://image.discover304.top/djangotext.jpeg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Django】 开发：静态文件，应用和模型层"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/16/2021q4/095-Django-dev-02/" title="【Django】 开发：静态文件，应用和模型层">【Django】 开发：静态文件，应用和模型层</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-16T07:13:16.000Z" title="Created 2021-11-16 15:13:16">2021-11-16</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Web/">Web</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Django/">Django</a></span></div><div class="content">静态文件
什么是静态文件
不能与服务器端做动态交互的文件都是静态文件
如:图片,css,js,音频,视频,html文件(部分)


静态文件配置
在 settings.py 中配置一下两项内容:


配置静态文件的访问路径

通过哪个url地址找静态文件
STATIC_URL &#x3D; ‘&#x2F;static&#x2F;‘
说明:
指定访问静态文件时是需要通过 &#x2F;static&#x2F;xxx或 127.0.0.1:8000&#x2F;static&#x2F;xxx
xxx 表示具体的静态资源位置




配置静态文件的存储路径 STATICFILES_DIRS

STATICFILES_DIRS保存的是静态文件在服务器端的存储位置


示例:
 1234# file: setting.pySTATICFILES_DIRS = (    os.path.join(BASE_DIR, &quot;static&quot;),)


访问静态文件
使用静态文件的访问路径进行访问

访问路径: STATIC_URL &#x3D; ‘&#x2F;static&#x2F;‘
示 ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/11/09/2021q4/091-jq/" title="JQuery 学了不亏">     <img class="post_bg" data-lazy-src="https://image.discover304.top/jquerylogo.jpeg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="JQuery 学了不亏"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/09/2021q4/091-jq/" title="JQuery 学了不亏">JQuery 学了不亏</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-09T02:41:46.000Z" title="Created 2021-11-09 10:41:46">2021-11-09</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Web/">Web</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/JavaScript/">JavaScript</a></span></div><div class="content">介绍jQuery是JavaScript的工具库，对原生JavaScript中的DOM操作、事件处理、包括数据处理和Ajax技术等进行封装,提供更完善，更便捷的方法。
使用引入先引入jquery文件，才能使用jquery语法

CDN 有网（备用）
本地文件（常用）

工厂函数 - $()“$()”函数用于获取元素节点，创建元素节点或将原生JavaScript对象转换为jquery对象,返回 jQuery 对象。jQuery 对象实际是一个类数组对象，包含了一系列 jQuery 操作的方法。例如 :
123456//$()获取元素节点,需传入字符串的选择器$(&quot;h1&quot;)$(&quot;#d1&quot;)$(&quot;.c1&quot;)$(&quot;body,h1,p&quot;)//选择器的特点，与样式选择器一致
原生JavaScript对象与jQuery对象原生JavaScript对象与jQuery对象的属性和方法不能混用。可以根据需要，互相转换 :

原生JavaScript转换jQuery对象 $(原生对象)，返回 jQuery 对象
jQuery对象转 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/11/08/2021q4/094-Django-dev-01/" title="【Django】 开发：模板语言">     <img class="post_bg" data-lazy-src="https://image.discover304.top/djangotext.jpeg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Django】 开发：模板语言"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/08/2021q4/094-Django-dev-01/" title="【Django】 开发：模板语言">【Django】 开发：模板语言</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-08T01:16:11.000Z" title="Created 2021-11-08 09:16:11">2021-11-08</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Web/">Web</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Django/">Django</a></span></div><div class="content">Django的框架设计模式
MVC 设计模式
MVC 代表 Model-View-Controller（模型-视图-控制器） 模式。
作用: 降低模块间的耦合度(解耦)
MVC
M 模型层(Model), 主要用于对数据库层的封装
V 视图层(View), 用于向用户展示结果
C 控制(Controller ，用于处理请求、获取数据、返回结果(重要)


MVC模式如图:  


MTV 模式  MTV 代表 Model-Template-View（模型-模板-视图） 模式。这种模式用于应用程序的分层开发
作用: 降低模块间的耦合度(解耦)
MTV 
M – 模型层(Model)  负责与数据库交互
T – 模板层(Template)  负责呈现内容到浏览器
V – 视图层(View)  是核心，负责接收请求、获取数据、返回结果


MTV模式如图:  



注：MTV的本质还是MVC，可以理解为MVC+T，使用T来辅助展示网站内容。因为网页的C部分很多时候都不大，不太需要拆分出来，所以就变成MTV了。
模板 Templates
什么是模板

模板是可以根据字典数据动态变化的html ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/11/08/2021q4/090-Django/" title="【Django】 Python Web 框架基础">     <img class="post_bg" data-lazy-src="https://image.discover304.top/djangotext.jpeg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Django】 Python Web 框架基础"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/11/08/2021q4/090-Django/" title="【Django】 Python Web 框架基础">【Django】 Python Web 框架基础</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-11-08T01:16:10.000Z" title="Created 2021-11-08 09:16:10">2021-11-08</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Web/">Web</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Django/">Django</a></span></div><div class="content">Django框架的介绍起源&amp;现状
2005年发布,采用Python语言编写的开源web框架

早期的时候Django主做新闻和内容管理的

一个重量级的 Python Web框架，Django 配备了常用的大部分组件

基本配置
路由系统
原生HTML模板系统
视图 view
Model模型,数据库连接和ORM数据库管理
中间件
Cookie &amp; Seesion
分页
数据库后台管理系统admin


Django的用途

网站后端开发
微信公众号、微信小程序等后台开发
基于HTTP&#x2F;HTTPS协议的后台服务器开发
在线语音&#x2F;图像识别服务器
在线第三方身份验证服务器等




Django的版本

最新版本:3.0.x
当前教学版本:2.2.12


Django的官网

官方网址: http://www.djangoproject.com
中文文档(第三方):
https://yiyibooks.cn/





Django的安装
查看已安装的版本
  123&gt;&gt;&gt; import django&gt;&gt;&gt; print ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/10/29/2021q4/092-js-note-web-html/" title="【JavaScript】 Web 相关笔记">     <img class="post_bg" data-lazy-src="https://image.discover304.top/jslogo.webp?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【JavaScript】 Web 相关笔记"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/10/29/2021q4/092-js-note-web-html/" title="【JavaScript】 Web 相关笔记">【JavaScript】 Web 相关笔记</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-10-29T01:38:46.000Z" title="Created 2021-10-29 09:38:46">2021-10-29</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Web/">Web</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/JavaScript/">JavaScript</a></span></div><div class="content">DOM节点操作DOM全称为 “Document Object Model”，文档对象模型，提供操作HTML文档的方法。（注：每个html文件在浏览器中都视为一篇文档,操作文档实际就是操作页面元素。）
节点对象JavaScript 会对 html 文档中的元素、属性、文本甚至注释进行封装，称为节点对象，提供相关的属性和方法。
访问节点
元素节点   ( 操作标签）
属性节点（操作标签属性）
文本节点（操作标签的文本内容）

标签属性都是元素节点对象的属性,可以使用点语法访问，例如：
123h1.id = &quot;d1&quot;; 		 //set 方法console.log(h1.id);  //get 方法h1.id = null;		//remove 方法

注意 :

属性值以字符串表示
class属性需要更名为 className，避免与关键字冲突，例如：h1.className &#x3D; “c1 c2 c3”；

获取多个DOM元素和控制属性
根据标签名获取元素节点列表
 12345var elems = document.getElementsByTagName(& ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/10/28/2021q4/089-js-note/" title="【JavaScript】 基础">     <img class="post_bg" data-lazy-src="https://image.discover304.top/jslogo.webp?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【JavaScript】 基础"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/10/28/2021q4/089-js-note/" title="【JavaScript】 基础">【JavaScript】 基础</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-10-28T01:38:46.000Z" title="Created 2021-10-28 09:38:46">2021-10-28</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Web/">Web</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/JavaScript/">JavaScript</a></span></div><div class="content">JavaScript 概述什么是JavaScriptJS 介绍简称JS，是一种浏览器解释型语言,嵌套在HTML文件中交给浏览器解释执行。主要用来实现网页的动态效果，用户交互及前后端的数据传输等。
JS 组成
核心语法 -ECMAScript 规范了JS的基本语法
浏览器对象模型 -BOM  Browser Object Model，提供了一系列操作浏览器的方法
文档对象模型 -DOM  Document Object Model ，提供了一系列操作的文档的方法

使用方式
元素绑定事件
事件 ：指用户的行为（单击，双击等）或元素的状态（输入框的焦点状态等）
事件处理：元素监听某种事件并在事件发生后自动执行事件处理函数。
常用事件：onclick (单击事件) 
语法 ：将事件名称以标签属性的方式绑定到元素上，自定义事件处理。   12&lt;!--实现点击按钮在控制台输出--&gt;&lt;button onclick=&quot;console.log(&#x27;Hello World&#x27;);&quot;&gt;点击&lt;/button&gt;


文档内嵌。使用标签书写 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/10/28/2021q4/088-css-note/" title="CSS 笔记 盒模型和布局方式">     <img class="post_bg" data-lazy-src="https://image.discover304.top/css3logo.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="CSS 笔记 盒模型和布局方式"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/10/28/2021q4/088-css-note/" title="CSS 笔记 盒模型和布局方式">CSS 笔记 盒模型和布局方式</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-10-28T01:38:33.000Z" title="Created 2021-10-28 09:38:33">2021-10-28</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Web/">Web</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/CSS/">CSS</a></span></div><div class="content">CSS 盒模型内容尺寸
一般情况下，为元素设置width&#x2F;height，指定的是内容框的大小

内容溢出：内容超出元素的尺寸范围，称为溢出。默认情况下溢出部分仍然可见，可以使用overflow调整溢出部分的显示,取值如下：



取值
作用



visible
默认值，溢出部分可见


hidden
溢出部分隐藏


scroll
强制在水平和垂直方向添加滚动条


auto
自动在溢出方向添加可用滚动条




边框边框实现语法：
1border: width style color;
边框样式为必填项，分为：



样式取值
含义



solid
实线边框


dotted
点线边框


dashed
虚线边框


double
双线边框


单边框设置分别设置某一方向的边框，取值：width style color;



属性
作用



border-top
设置上边框


border-bottom
设置下边框


border-left
设置左边框


border-right
设置右边框


网页三角标制作
元素设置宽高为0
统一设置四个方向透明边框
调整 ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/10/28/2021q4/087-html-note/" title="HTML 笔记">     <img class="post_bg" data-lazy-src="https://image.discover304.top/htmllogo.jpeg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="HTML 笔记"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/10/28/2021q4/087-html-note/" title="HTML 笔记">HTML 笔记</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-10-28T01:37:34.000Z" title="Created 2021-10-28 09:37:34">2021-10-28</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E5%8F%82%E8%80%83/">参考</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%B5%84%E6%96%99/">资料</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/HTML/">HTML</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Web/">Web</a></span></div><div class="content">Web前端介绍什么是网页网页是基于浏览器的应用程序，是数据展示的载体.
网页的组成
浏览器
代替用户向服务器发请求
接收并解析数据展示给用户


服务器
存储数据
处理并响应请求


协议
规范数据在传输过程中的打包方式



开发前的准备
运行环境：浏览器，设置chrome为默认浏览器，作为网页文件的运行环境。
调试工具：浏览器自带的调试工具，使用快捷键”F12”或右键”检查”打开。
开发工具：不限，选用个人习惯的即可（VSCode、EditPlus、PyCharm等）。

HTML语法介绍HTML介绍超文本标记语言（HyperText Markup Language）浏览器能够识别和解析的语言，通过标签的形式构建页面结构和填充内容
标签标签也称为标记或元素，用于在网页中标记内容

语法：标签使用&lt; &gt;为标志，在&lt; &gt;内部写标签名和标签属性

注释语法：

 1&lt;!-- 此处为注释 --&gt;


标签名不区分大小写，推荐小写表示


分类：

双标签：成对出现，包含开始标签和结束标签。例： 123&lt;html&gt;&lt;!-- 内容或其他标签 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/10/16/2021q4/083-python-socket-3and4/" title="【Python】socket TCP 编程中的三次握手和四次挥手的过程分析">     <img class="post_bg" data-lazy-src="https://image.discover304.top/python_lense.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Python】socket TCP 编程中的三次握手和四次挥手的过程分析"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/10/16/2021q4/083-python-socket-3and4/" title="【Python】socket TCP 编程中的三次握手和四次挥手的过程分析">【Python】socket TCP 编程中的三次握手和四次挥手的过程分析</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-10-16T05:36:31.000Z" title="Created 2021-10-16 13:36:31">2021-10-16</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%BD%91%E7%BB%9C/">网络</a></span></div><div class="content">笔记整理，参考见本链接。

:star2:三次握手

:star2:四次挥手

:star2:实现流程



:star2:客户端代码解析12345678910111213141516171819202122232425# socket简单编写：服务端    客户端#服务端import socket  # 导入 socket模块serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# socket.AF_INET  :表示基于网络# socket.SOCK_STREAM：表示基于TCP协议serv.bind((&quot;127.0.0.1&quot;, 8000))# bind(ip地址，端口号---》元祖的形式)：绑定在那个计算机上作为服务器serv.listen(5)# listen(n)：表示同时接待5个链接，n:控制backlog、即：半链接池；conn, addr = serv.accept()# serv.accept():表示接收到客户端的请求信息，# 此时，服务端会收到：一个tcp链接、客户端ip地址，以元祖形 ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/10/15/2021q4/082-python-note-plus/" title="【Python】高级笔记第七部分：网络并发编程">     <img class="post_bg" data-lazy-src="https://image.discover304.top/python-logo-4k-i6-1152x864.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Python】高级笔记第七部分：网络并发编程"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/10/15/2021q4/082-python-note-plus/" title="【Python】高级笔记第七部分：网络并发编程">【Python】高级笔记第七部分：网络并发编程</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-10-15T04:06:45.000Z" title="Created 2021-10-15 12:06:45">2021-10-15</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%BD%91%E7%BB%9C/">网络</a></span></div><div class="content">@ 作者：达内 Python 教学部，吕泽@ 编辑：博主，Discover304


:star2:网络并发模型
:star:网络并发模型概述
什么是网络并发在实际工作中，一个服务端程序往往要应对多个客户端同时发起访问的情况。如果让服务端程序能够更好的同时满足更多客户端网络请求的情形，这就是并发网络模型。
循环网络模型问题循环网络模型只能循环接收客户端请求，处理请求。同一时刻只能处理一个请求，处理完毕后再处理下一个。这样的网络模型虽然简单，资源占用不多，但是无法同时处理多个客户端请求就是其最大的弊端，往往只有在一些低频的小请求任务中才会使用。


:star:多进程&#x2F;线程并发模型多进程&#x2F;线程并发模中每当一个客户端连接服务器，就创建一个新的进程&#x2F;线程为该客户端服务，客户端退出时再销毁该进程&#x2F;线程，多任务并发模型也是实际工作中最为常用的服务端处理模型。

模型特点

优点：能同时满足多个客户端长期占有服务端需求，可以处理各种请求。
缺点： 资源消耗较大
适用情况：客户端请求较复杂，需要长时间占有服务器。


创建流程

创建网络套接字
等待客户端连接 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/10/15/2021q4/081-python-note-plus/" title="【Python】高级笔记第六部分：多任务编程">     <img class="post_bg" data-lazy-src="https://image.discover304.top/python-logo-4k-i6-1152x864.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Python】高级笔记第六部分：多任务编程"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/10/15/2021q4/081-python-note-plus/" title="【Python】高级笔记第六部分：多任务编程">【Python】高级笔记第六部分：多任务编程</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-10-15T04:03:15.000Z" title="Created 2021-10-15 12:03:15">2021-10-15</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a></span></div><div class="content">@ 作者：达内 Python 教学部，吕泽@ 编辑：博主，Discover304


:star2:多任务概述
多任务即操作系统中可以同时运行多个任务。比如我们可以同时挂着qq，听音乐，同时上网浏览网页。这是我们看得到的任务，在系统中还有很多系统任务在执行,现在的操作系统基本都是多任务操作系统，具备运行多任务的能力。
什么是多任务编程多任务编程即一个程序中编写多个任务，在程序运行时让这多个任务一起运行，而不是一个一个的顺次执行。比如微信视频聊天，这时候在微信运行过程中既用到了视频任务也用到了音频任务，甚至同时还能发消息。这就是典型的多任务。而实际的开发过程中这样的情况比比皆是。

实现多任务编程的方法 ： 多进程编程，多线程编程


多任务意义
提高了任务之间的配合，可以根据运行情况进行任务创建。比如： 你也不知道用户在微信使用中是否会进行视频聊天，总不能提前启动起来吧，这是需要根据用户的行为启动新任务。
充分利用计算机资源，提高了任务的执行效率。





在任务中无阻塞时只有并行状态才能提高效率
在任务中有阻塞时并行并发都能提高效率



计算机原理 

CPU：计算机硬件的核心部 ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/10/14/2021q4/079-python-note-plus/" title="【Python】高级笔记第五部分：网络编程">     <img class="post_bg" data-lazy-src="https://image.discover304.top/python-logo-4k-i6-1152x864.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Python】高级笔记第五部分：网络编程"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/10/14/2021q4/079-python-note-plus/" title="【Python】高级笔记第五部分：网络编程">【Python】高级笔记第五部分：网络编程</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-10-14T13:00:50.000Z" title="Created 2021-10-14 21:00:50">2021-10-14</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%BD%91%E7%BB%9C/">网络</a></span></div><div class="content">@ 作者：达内 Python 教学部，吕泽@ 编辑：博主，Discover304


:star2:网络基础知识
:star:什么是网络计算机网络功能主要包括实现资源共享，实现数据信息的快速传递。
  

  

:star:网络通信标准网络的普及需要标准。不同的国家和公司都建立自己的通信标准不利于网络互连，同时多种标准并行情况下不利于技术的发展融合。
而一个统一 的通信标准不仅可以实现万物互联，也可以降低开发难度。

于是OSI7层模型被提出，并且被行业接受。



索引
层名
说明



7
应用层
各种应用程序


6
表示层
数据格式化、数据加密解密、数据的压缩解压缩


5
会话层
建立、管理、终止应用之间的会话连接


4
传输层
提供端到端的数据服务（可靠或者不可靠）


3
网络层
逻辑寻址；路由选择


2
数据链路层
将分组数据封装成帧


1
物理层
在介质上传输比特；提供物理的规约




OSI7层 模型因其每层功能明确，各司其职，也就是说实际规定了每一层的任务，该完成什么事情，可以很好的的降低开发难度。
之后随着技术的进步和互联网的发展，OSI7层的模型因为 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/10/14/2021q4/078-python-note-plus/" title="【Python】高级笔记第四部分：使用Python操作数据库">     <img class="post_bg" data-lazy-src="https://image.discover304.top/python-logo-4k-i6-1152x864.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Python】高级笔记第四部分：使用Python操作数据库"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/10/14/2021q4/078-python-note-plus/" title="【Python】高级笔记第四部分：使用Python操作数据库">【Python】高级笔记第四部分：使用Python操作数据库</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-10-14T12:58:21.000Z" title="Created 2021-10-14 20:58:21">2021-10-14</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/MySQL/">MySQL</a></span></div><div class="content">@ 作者：达内 Python 教学部，吕泽@ 编辑：博主，Discover304

:star2:pymysql模块pymysql是一个第三方库，如果自己的计算机上没有可以在终端使用命令进行安装，$sudo pip3 install pymysql。

pymysql使用流程

建立数据库连接：db = pymysql.connect(...)
创建游标对象：cur = db.cursor()
游标方法:  cur.execute(&quot;insert ....&quot;)
提交到数据库或者获取数据 :  db.commit() / cur.fetchall()
关闭游标对象 ：cur.close()
断开数据库连接 ：db.close()



:star:常用函数
链接数据库  12345678db = pymysql.connect(参数列表)host ：主机地址,本地 localhostport ：端口号,默认3306user ：用户名password ：密码database ：库charset ：编码方式,推荐使用 utf8
创建游标  12cur = db.curso ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/10/14/2021q4/075-python-note-plus/" title="【Python】高级笔记第三部分：数据库的视图、函数、事务和安全">     <img class="post_bg" data-lazy-src="https://image.discover304.top/python-logo-4k-i6-1152x864.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Python】高级笔记第三部分：数据库的视图、函数、事务和安全"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/10/14/2021q4/075-python-note-plus/" title="【Python】高级笔记第三部分：数据库的视图、函数、事务和安全">【Python】高级笔记第三部分：数据库的视图、函数、事务和安全</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-10-14T06:31:28.000Z" title="Created 2021-10-14 14:31:28">2021-10-14</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/MySQL/">MySQL</a></span></div><div class="content">@ 作者：达内 Python 教学部，吕泽@ 编辑：博主，Discover304

:star2:视图
视图是存储的查询语句,当调用的时候,产生结果集,视图充当的是虚拟表的角色。
视图可以理解为一个表或多个表中导出来的表，作用和真实表一样，包含一系列带有行和列的数据 视图中，用户可以使用SELECT语句查询数据，也可以使用INSERT，UPDATE，DELETE修改记录。
视图可以使用户操作方便，并保障数据库系统安全，如果原表改名或者删除则视图也失效。


:star:视图操作创建视图
123456789101112131415161718192021-- 语法结构：CREATE [OR REPLACE] VIEW [view_name] AS [SELECT_STATEMENT];-- 释义：CREATE VIEW： 创建视图OR REPLACE : 可选，如果添加原来有同名视图的情况下会覆盖掉原有视图view_name ： 视图名称SELECT_STATEMENT ：SELECT语句e.g.create view good_student_viewas select name,ag ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/09/29/2021q3/074-python-note-plus/" title="Python 高级笔记第二部分：数据库的概述和MySQL数据表操作">     <img class="post_bg" data-lazy-src="https://image.discover304.top/python-logo-4k-i6-1152x864.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="Python 高级笔记第二部分：数据库的概述和MySQL数据表操作"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/09/29/2021q3/074-python-note-plus/" title="Python 高级笔记第二部分：数据库的概述和MySQL数据表操作">Python 高级笔记第二部分：数据库的概述和MySQL数据表操作</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-09-29T11:42:35.000Z" title="Created 2021-09-29 19:42:35">2021-09-29</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/MySQL/">MySQL</a></span></div><div class="content">@ 作者：达内 Python 教学部，吕泽@ 编辑：博主，Discover304

:star2:数据存储
人工管理阶段
文件管理阶段 （.txt  .doc  .xls）
数据库管理阶段： 数据组织结构化降低了冗余度,提高了增删改查的效率,容易扩展,方便程序调用处理



:star2:基本概念
数据库 ： 按照数据一定结构，存储管理数据的仓库。数据库是在数据库管理系统管理和控制下，在一定介质上的数据集合。
数据库管理系统 ：管理数据库的软件，用于建立和维护数据库。像是MySql



:star2:关系型数据库和非关系型数据库
关系型： 采用关系模型（二维表）来组织数据结构的数据库 ，如Oracle 、SQL_Server、 MySQL
非关系型： 不采用关系模型组织数据结构的数据库，如：MongoDB、Redis。其中MangoDB是类似Json的树状结构



:star2:MySQL官网地址：https://www.mysql.com/


MySQL特点

是开源数据库，使用C和C++编写 
能够工作在众多不同的平台上
提供了用于C、C++、Python、Java、Perl ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/09/29/2021q3/073-python-note-plus/" title="【Python】高级笔记第一部分：文件读写和正则表达式">     <img class="post_bg" data-lazy-src="https://image.discover304.top/python-logo-4k-i6-1152x864.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Python】高级笔记第一部分：文件读写和正则表达式"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/09/29/2021q3/073-python-note-plus/" title="【Python】高级笔记第一部分：文件读写和正则表达式">【Python】高级笔记第一部分：文件读写和正则表达式</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-09-29T01:45:07.000Z" title="Created 2021-09-29 09:45:07">2021-09-29</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a></span></div><div class="content">
【Python】高级笔记第一部分：文件读写和正则表达式全系列导航见：Python教程整理



:four_leaf_clover:碎碎念:four_leaf_clover:Hello米娜桑，这里是英国留学中的杨丝儿。我的博客的关键词集中在算法、机器人、人工智能、数学等等，点个关注吧，持续高质量输出中。:cherry_blossom:唠嗑QQ群：兔叽的魔术工房 (942848525):star:B站账号：杨丝儿今天也在科学修仙（UP主跨站求个关注）


:star2:数据处理概述数据处理的基本目的是从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说是有价值、有意义的数据。当下数据处理贯穿于社会生产和社会生活的各个领域。数据处理技术的发展及其应用的广度和深度，极大地影响了人类社会发展的进程。数据处理也是大数据，数据分析等后续科学的基本环节。


:star2:基本概念数据 ： 能够输入到计算机中并被识别处理的信息集合。
数据存储的发展阶段：

人工管理阶段：人为管理，没有固定的格式和存储方法，容易混乱。
文件管理阶段 ：数据可以长期保存，存储数据量大，使用简 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/09/23/2021q3/065-python-note/" title="【Python】笔记第六部分：生成器和函数式编程">     <img class="post_bg" data-lazy-src="https://image.discover304.top/python900-500.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Python】笔记第六部分：生成器和函数式编程"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/09/23/2021q3/065-python-note/" title="【Python】笔记第六部分：生成器和函数式编程">【Python】笔记第六部分：生成器和函数式编程</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-09-23T01:34:05.000Z" title="Created 2021-09-23 09:34:05">2021-09-23</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a></span></div><div class="content">
:star2:迭代Iteration每一次对过程的重复称为一次“迭代”，而每一次迭代得到的结果会作为下一次迭代的初始值。例如：循环获取容器中的元素。
具有__iter__函数的对象，可以返回迭代器对象。
1234567# 创建：class 可迭代对象名称:	def __iter__(self):   		return 迭代器# 使用：	for 变量名 in 可迭代对象:		语句

背后的原理是：
123456迭代器 = 可迭代对象.__iter__() # 实例一个迭代器对象。while True:    try:         print(迭代器.__next__()) # 调用迭代器中的`__next__`方法。    except StopIteration: # 在迭代器 raise StopIteration 后停止。        break

迭代器对象是可以被__next__()函数调用并返回下一个值的对象。
12345678class 迭代器类名:    def __init__(self, 聚合对象): # 聚合对象通常是容器对象。        self.聚合 ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/09/17/2021q3/062-python-note/" title="【Python】笔记第五部分：盒子的箱子，异常">     <img class="post_bg" data-lazy-src="https://image.discover304.top/python900-500.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Python】笔记第五部分：盒子的箱子，异常"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/09/17/2021q3/062-python-note/" title="【Python】笔记第五部分：盒子的箱子，异常">【Python】笔记第五部分：盒子的箱子，异常</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-09-17T06:30:18.000Z" title="Created 2021-09-17 14:30:18">2021-09-17</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a></span></div><div class="content">
:star2:模块 Module程序可以拆分成以.py结尾的模块，拆分相似的逻辑。
分开以后，把有关联的代码放在一起会更清晰，有利于合作开发。
不同文件之间的关联，将目标模块的成员导入到当前模块的作用域中。
12345# 你过来，面向过程比较多，因为用的是文件名。import 模块 as 名称# 主动过来，面向对象，直接可以拿来用。from 模块 import 成员1, 成员1, 成员1 

当名字有冲突的时候，遵循就近原则。但是我们要尽力避免冲突的产生。
常用的命名：

BLL 业务逻辑层 business logic layer
DAL 数据访问层 data access layer
USL 用户显示层 user show layer
model 模型层
main 程序入口代码

__name__ 显示模块名字，显示 __main__ 的时候意思是主模块，也就是第一次运行的模块&#x2F;不是被导入的模块。
python是解释型语言，但为了提高运行速度，让 python 程序更快启动，python使用了一种编译的方法。

源代码 –&gt; 编译–&gt; 字节码 – &gt;解 ...</div></div></div><div class="recent-post-item"><div class="post_cover left_radius"><a href="/2021/09/13/2021q3/056-1-python-note/" title="【Python】笔记第四部分下：黑盒子的三大特征">     <img class="post_bg" data-lazy-src="https://image.discover304.top/python900-500.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Python】笔记第四部分下：黑盒子的三大特征"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/09/13/2021q3/056-1-python-note/" title="【Python】笔记第四部分下：黑盒子的三大特征">【Python】笔记第四部分下：黑盒子的三大特征</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-09-13T03:00:00.000Z" title="Created 2021-09-13 11:00:00">2021-09-13</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a></span></div><div class="content">
:four_leaf_clover:碎碎念:four_leaf_clover:Hello米娜桑，这里是英国留学中的杨丝儿。我的博客的关键词集中在算法、机器人、人工智能、数学等等，点个关注吧，持续高质量输出中。:cherry_blossom:唠嗑QQ群：兔叽的魔术工房 (942848525):star:B站账号：杨丝儿今天也在科学修仙（UP主跨站求个关注）


:star2:封装
:star:数据角度将一些基本数据类型复合成一个自定义类型。

将数据与对数据的操作相关联。
代码可读性更高（类是对象的模板）。


:star:行为角度向类外提供必要的功能，隐藏实现的细节。简化编程，使用者不必了解具体的实现细节，只需要调用对外提供的功能。
可以声明私有成员。

无需向类外提供的成员，可以通过私有化进行屏蔽。
封装可以开放有用的功能，可以帮助同事更容易阅读和使用代码。
做法：命名使用双下划线开头。
本质：障眼法，实际也可以访问。

私有成员的名称被修改为：_类名__成员名，可以通过 __dict__ 属性查看。
12345678910111213class MyClass:    def _ ...</div></div></div><div class="recent-post-item"><div class="post_cover right_radius"><a href="/2021/09/13/2021q3/056-python-note/" title="【Python】笔记第四部分上：类和封装">     <img class="post_bg" data-lazy-src="https://image.discover304.top/python900-500.jpg?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【Python】笔记第四部分上：类和封装"></a></div><div class="recent-post-info"><a class="article-title" href="/2021/09/13/2021q3/056-python-note/" title="【Python】笔记第四部分上：类和封装">【Python】笔记第四部分上：类和封装</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2021-09-13T02:34:46.000Z" title="Created 2021-09-13 10:34:46">2021-09-13</time></span><span class="article-meta tags"><span class="article-meta__separator">|</span><i class="fas fa-tag article-meta__icon"></i><a class="article-meta__tags" href="/tags/%E5%AD%A6%E4%B9%A0/">学习</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E8%AE%B0%E5%BD%95/">记录</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/Python/">Python</a><span class="article-meta__link">•</span><a class="article-meta__tags" href="/tags/%E7%AC%94%E8%AE%B0/">笔记</a></span></div><div class="content">
【Python】笔记第四部分全系列导航见：Python教程整理



:four_leaf_clover:碎碎念:four_leaf_clover:Hello米娜桑，这里是英国留学中的杨丝儿。我的博客的关键词集中在算法、机器人、人工智能、数学等等，点个关注吧，持续高质量输出中。:cherry_blossom:唠嗑QQ群：兔叽的魔术工房 (942848525):star:B站账号：杨丝儿今天也在科学修仙（UP主跨站求个关注）


:star2:概述
:star:面向过程
定义：分析出解决问题的步骤，然后逐步实现。
公式：程序 &#x3D; 算法 + 数据结构
优点：所有环节、细节自己掌控。
缺点：考虑所有细节，工作量大。


:star:面向对象
定义：找出解决问题的人，然后分配职责。
公式：程序 &#x3D; 对象 + 交互
优点
思想层面：
可模拟现实情景，更接近于人类思维。
有利于梳理归纳、分析解决问题。


技术层面：
高复用：对重复的代码进行封装，提高开发效率。
高扩展：增加新的功能，不修改以前的代码。
高维护：代码可读性好，逻辑清晰，结构规整。




缺点：学习曲线陡峭。 ...</div></div></div><nav id="pagination"><div class="pagination"><a class="extend prev" rel="prev" href="/page/7/"><i class="fas fa-chevron-left fa-fw"></i></a><a class="page-number" href="/">1</a><span class="space">&hellip;</span><a class="page-number" href="/page/7/">7</a><span class="page-number current">8</span><a class="page-number" href="/page/9/">9</a><a class="extend next" rel="next" href="/page/9/"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside_content" id="aside_content"><div class="card-widget card-info"><div class="card-content"><div class="card-info-avatar is-center"><img class="avatar-img" data-lazy-src="/img/head.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/><div class="author-info__name">✨YangSier✨</div><div class="author-info__description">Love Everything You Like.</div></div><div class="card-info-data"><div class="card-info-data-item is-center"><a href="/archives/"><div class="headline">Articles</div><div class="length-num">243</div></a></div><div class="card-info-data-item is-center"><a href="/tags/"><div class="headline">Tags</div><div class="length-num">88</div></a></div><div class="card-info-data-item is-center"><a href="/categories/"><div class="headline">Categories</div><div class="length-num">23</div></a></div></div><a class="button--animated" id="card-info-btn" target="_blank" rel="noopener" href="https://space.bilibili.com/98639326"><i class="fab fa-bilibili"></i><span>Bilibili Me</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="https://github.com/Discover304" target="_blank" title="Github"><i class="fab fa-github"></i></a><a class="social-icon" href="https://blog.csdn.net/Discover304" target="_blank" title="CSDN"><i class="fa-solid fa-c"></i></a><a class="social-icon" href="https://www.zhihu.com/people/discover-56-86-75" target="_blank" title="知乎"><i class="fa-brands fa-zhihu"></i></a><a class="social-icon" href="mailto:hobart.yang@qq.com" target="_blank" title="Email"><i class="fas fa-envelope"></i></a><a class="social-icon" href="https://jq.qq.com/?_wv=1027&amp;k=EaGddTQg" target="_blank" title="QQ"><i class="fa-brands fa-qq"></i></a></div></div></div><div class="card-widget card-announcement"><div class="card-content"><div class="item-headline"><i class="fas fa-bullhorn card-announcement-animation"></i><span>Announcement</span></div><div class="announcement_content">✨动态更新：<p style="text-align:center">享受精彩大学生活中。</p>✨聊天划水QQ群：<p style="text-align:center"><a target="_blank" rel="noopener" href="https://jq.qq.com/?_wv=1027&k=EaGddTQg"><strong>兔叽の魔术工房</strong></a><br>942-848-525</p>✨我们的口号是：<p style="text-align:center; color:#39C5BB">人工降神，机械飞升！</p><a target="_blank" rel="noopener" href='https://space.bilibili.com/98639326'><img src='/img/mikulittletrans.png'></a></div></div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="card-content"><div class="item-headline"><i class="fas fa-history"></i><span>Recent Post</span></div><div class="aside-list"><div class="aside-list-item"><a class="thumbnail" href="/2023/04/24/2023q1/173-nginx-docker-blog-page-depoly/" title="【模板】Hexo Docker Nginx 个人博客服务器部署"><img data-lazy-src="https://image.discover304.top/s16001804242023.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="【模板】Hexo Docker Nginx 个人博客服务器部署"/></a><div class="content"><a class="title" href="/2023/04/24/2023q1/173-nginx-docker-blog-page-depoly/" title="【模板】Hexo Docker Nginx 个人博客服务器部署">【模板】Hexo Docker Nginx 个人博客服务器部署</a><time datetime="2023-04-24T06:39:24.000Z" title="Created 2023-04-24 14:39:24">2023-04-24</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2022/12/11/2022q4/172-design-idea/" title="【思考】创新点子"><img data-lazy-src="https://image.discover304.top/blog-img/s19313212112022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="【思考】创新点子"/></a><div class="content"><a class="title" href="/2022/12/11/2022q4/172-design-idea/" title="【思考】创新点子">【思考】创新点子</a><time datetime="2022-12-11T11:08:37.000Z" title="Created 2022-12-11 19:08:37">2022-12-11</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2022/12/11/2022q4/171-other-thought/" title="【思考】其他思考"><img data-lazy-src="https://image.discover304.top/blog-img/s19305112112022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="【思考】其他思考"/></a><div class="content"><a class="title" href="/2022/12/11/2022q4/171-other-thought/" title="【思考】其他思考">【思考】其他思考</a><time datetime="2022-12-11T11:08:17.000Z" title="Created 2022-12-11 19:08:17">2022-12-11</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2022/12/11/2022q4/170-key-thought/" title="【思考】核心思考"><img data-lazy-src="https://image.discover304.top/blog-img/s19294112112022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="【思考】核心思考"/></a><div class="content"><a class="title" href="/2022/12/11/2022q4/170-key-thought/" title="【思考】核心思考">【思考】核心思考</a><time datetime="2022-12-11T11:08:06.000Z" title="Created 2022-12-11 19:08:06">2022-12-11</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2022/12/09/2022q4/169-new-r/" title="R: Getting Into Project of R"><img data-lazy-src="https://image.discover304.top/blog-img/s18350812112022.png" onerror="this.onerror=null;this.src='/img/404.png'" alt="R: Getting Into Project of R"/></a><div class="content"><a class="title" href="/2022/12/09/2022q4/169-new-r/" title="R: Getting Into Project of R">R: Getting Into Project of R</a><time datetime="2022-12-09T09:44:06.000Z" title="Created 2022-12-09 17:44:06">2022-12-09</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2022/11/28/2022q3/167-2-sp-review/" title="SP Modules Review Contents (3)"><img data-lazy-src="https://image.discover304.top/blog-img/s11220010012022.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="SP Modules Review Contents (3)"/></a><div class="content"><a class="title" href="/2022/11/28/2022q3/167-2-sp-review/" title="SP Modules Review Contents (3)">SP Modules Review Contents (3)</a><time datetime="2022-11-28T07:24:39.000Z" title="Created 2022-11-28 15:24:39">2022-11-28</time></div></div><div class="aside-list-item"><a class="thumbnail" href="/2022/11/17/2022q3/166-10-connected-speech-hidden-markov-model/" title="SP Module 10 Connected Speech &amp; HMM Training"><img data-lazy-src="https://image.discover304.top/blog-img/s11220010012022.png?imageView2/2/h/300" onerror="this.onerror=null;this.src='/img/404.png'" alt="SP Module 10 Connected Speech &amp; HMM Training"/></a><div class="content"><a class="title" href="/2022/11/17/2022q3/166-10-connected-speech-hidden-markov-model/" title="SP Module 10 Connected Speech &amp; HMM Training">SP Module 10 Connected Speech &amp; HMM Training</a><time datetime="2022-11-17T01:47:12.000Z" title="Created 2022-11-17 09:47:12">2022-11-17</time></div></div></div></div></div><div class="card-widget card-webinfo"><div class="card-content"><div class="item-headline"><i class="fas fa-chart-line"></i><span>Info</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">Article :</div><div class="item-count">243</div></div><div class="webinfo-item"><div class="item-name">Run time :</div><div class="item-count" id="runtimeshow" data-publishDate="2020-05-21T23:00:00.000Z"></div></div><div class="webinfo-item"><div class="item-name">Total Count :</div><div class="item-count">393.8k</div></div><div class="webinfo-item"><div class="item-name">UV :</div><div class="item-count" id="busuanzi_value_site_uv"></div></div><div class="webinfo-item"><div class="item-name">Last Push :</div><div class="item-count" id="last-push-date" data-lastPushDate="2023-04-25T11:02:55.530Z"></div></div></div></div></div></div></div></main><footer id="footer" style="background-image: url(https://image.discover304.top/wallpaper/anime-anime-girls-original-characters-short-hair-wallpaper-preview.jpg?imageView2/2/h/600)"><div id="footer-wrap"><div class="copyright">&copy;2020 - 2023 By ✨YangSier✨</div><div><a target="_blank" href="https://beian.miit.gov.cn/" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"><p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;"> 冀ICP备2021025381号-1</p></a></div><div><a target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=13060602001430" style="display:inline-block;text-decoration:none;height:20px;line-height:20px;"><img src="/img/beian.png" style="float:left;"/><p style="float:left;height:20px;line-height:20px;margin: 0px 0px 0px 5px; color:#939393;">冀公网安备 13060602001430号</p></a></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="Switch Between Traditional Chinese And Simplified Chinese">繁</button><button id="darkmode" type="button" title="Switch Between Light And Dark Mode"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="Toggle between single-column and double-column"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="Setting"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="Back To Top"><i class="fas fa-arrow-up"></i></button></div></div><div id="local-search"><div class="search-dialog"><div class="search-dialog__title" id="local-search-title">Local search</div><div id="local-input-panel"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="Search for Posts" type="text"/></div></div></div><hr/><div id="local-search-results"></div><span class="search-close-button"><i class="fas fa-times"></i></span></div><div id="search-mask"></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="/js/tw_cn.js"></script><script src="https://cdn.jsdelivr.net/npm/instant.page/instantpage.min.js" type="module"></script><script src="https://cdn.jsdelivr.net/npm/vanilla-lazyload/dist/lazyload.iife.min.js"></script><script src="https://cdn.jsdelivr.net/npm/node-snackbar/dist/snackbar.min.js"></script><script>function panguFn () {
  if (typeof pangu === 'object') pangu.spacingElementById('content-inner')
  else {
    getScript('https://cdn.jsdelivr.net/npm/pangu/dist/browser/pangu.min.js')
      .then(() => {
        pangu.spacingElementById('content-inner')
      })
  }
}

function panguInit () {
  if (false){
    GLOBAL_CONFIG_SITE.isPost && panguFn()
  } else {
    panguFn()
  }
}

document.addEventListener('DOMContentLoaded', panguInit)</script><script src="/js/search/local-search.js"></script><script>var preloader = {
  endLoading: () => {
    document.body.style.overflow = 'auto';
    document.getElementById('loading-box').classList.add("loaded")
  },
  initLoading: () => {
    document.body.style.overflow = '';
    document.getElementById('loading-box').classList.remove("loaded")

  }
}
window.addEventListener('load',()=> {preloader.endLoading()})</script><div class="js-pjax"><script>function subtitleType () {
  if (true) { 
    var typed = new Typed("#subtitle", {
      strings: "Space of Tech and Love.,但行好事，莫问前程。,['happy' for _ in range(365)],一切都是最好的安排，无怨无悔。".split(","),
      startDelay: 300,
      typeSpeed: 150,
      loop: true,
      backSpeed: 50
    })
  } else {
    document.getElementById("subtitle").innerHTML = 'Space of Tech and Love.'
  }
}

if (true) {
  if (typeof Typed === 'function') {
    subtitleType()
  } else {
    getScript('https://cdn.jsdelivr.net/npm/typed.js/lib/typed.min.js').then(subtitleType)
  }
} else {
  subtitleType()
}</script><script>if (document.getElementsByClassName('mermaid').length) {
  if (window.mermaidJsLoad) mermaid.init()
  else {
    getScript('https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js').then(() => {
      window.mermaidJsLoad = true
      mermaid.initialize({
        theme: 'neutral',
      })
      false && mermaid.init()
    })
  }
}</script><script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div><script defer="defer" id="fluttering_ribbon" mobile="true" src="https://cdn.jsdelivr.net/npm/butterfly-extsrc@1/dist/canvas-fluttering-ribbon.min.js"></script><script>(function(){
  const bp = document.createElement('script');
  const curProtocol = window.location.protocol.split(':')[0];
  if (curProtocol === 'https') {
    bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
  }
  else{
    bp.src = 'http://push.zhanzhang.baidu.com/push.js';
  }
  bp.dataset.pjax = ''
  const s = document.getElementsByTagName("script")[0];
  s.parentNode.insertBefore(bp, s);
})()</script></div></body></html>